home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-1.iso / AMUG Info / Preferred / FirstClass® Client / FCWindows.ZIP / FCWIN.MST < prev    next >
Encoding:
Text File  |  1994-11-01  |  7.5 KB  |  264 lines

  1. '**************************************************************************
  2. '*                       FirstClass Windows Install 2.6
  3. '*                        (C)SoftArc Inc. 1993, 1994.
  4. '*                              Scott Appleton & JPA
  5. '**************************************************************************
  6.  
  7. ''$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME       = 100
  14. CONST BADVERS       = 200
  15. CONST BADPATH       = 300
  16. CONST DONE          = 500
  17. CONST COOLBOX       = 600
  18. CONST IDC_C         = 403   '' from dialogs.h
  19. CONST IDC_EDIT      = 427
  20.  
  21. CONST INSTAPP       = 1
  22. CONST INSTHELP      = 2
  23. CONST INSTNOT       = 3
  24.  
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 3
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31. GLOBAL GOODDEST$ 
  32. GOODDEST$ = "c:\FCWIN"
  33. GLOBAL SPACEOK%     '' Is there enough space on disk?
  34. GLOBAL PATHOK%      '' Is the path valid?
  35. GLOBAL CURRSTATE%   '' Current state of Install button
  36. PATHOK% = IsDirWritable(GOODDEST$)
  37.  
  38. OPTCUR$ = "CheckItemsState"
  39. FOR i% = 1 TO 3 STEP 1
  40.         AddListItem "CheckItemsIn", "ON"
  41.         AddListItem OPTCUR$, "ON"
  42. NEXT i%
  43.  
  44. SIZETEXT$ = "TextIn"
  45.  
  46. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  47. DECLARE SUB ReCalcDrives
  48. DECLARE SUB DoGreyInstallButton
  49.  
  50. INIT:
  51.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  52.  
  53.     SetBitmap CUIDLL$, LOGO
  54.     SetTitle "FirstClass for Windows Install"
  55.  
  56.     szInf$ = MakePath (GetSymbolValue("STF_CWDDIR"), "FCWIN.INF")
  57.     ReadInfFile szInf$
  58.     
  59.     MaxWind(HwndFrame())
  60.  
  61. WELCOME:
  62.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FBitmapDlgProc", 0, "")
  63.     IF sz$ = "CONTINUE" THEN
  64.         UIPop 1
  65.     ELSE
  66.         GOTO QUIT
  67.     END IF
  68.  
  69.     i% = GetWindowsMajorVersion()
  70.     j% = GetWindowsMinorVersion()
  71.     IF i%<3 OR (i%=3 AND j%<10) THEN
  72.         sz$ = UIStartDlg(CUIDLL$, BADVERS, "FInfoDlgProc", 0, "")
  73.         UIPop 1 
  74.         GOTO QUIT
  75.     END IF
  76.  
  77. GOTO GETPATH
  78.  
  79. GETPATH:
  80.     SetSymbolValue "EditTextIn", GOODDEST$
  81.     SetSymbolValue "EditFocus", "END"
  82.     ReCalcDrives
  83. GETPATHL1:    
  84.     DoGreyInstallButton
  85.     sz$ = UIStartDlg(CUIDLL$, COOLBOX, "FMyCoolDlgProc", 0, "")
  86.     IF sz$ = "CONTINUE" THEN
  87.         DEST$ = GetSymbolValue("EditTextOut")
  88.         IF IsDirWritable(DEST$) = 0 THEN
  89.             GOSUB BADPATH
  90.             PATHOK% = 0
  91.             SetMyFocus(IDC_EDIT)
  92.             GOTO GETPATHL1
  93.         ELSE
  94.             GOODDEST$ = DEST$
  95.             PATHOK% = 1
  96.             ReCalcDrives              
  97.         END IF
  98.         UIPop 1
  99.     ELSEIF sz$ = "REACTIVATE" THEN
  100.         GOTO GETPATHL1
  101.     ELSEIF sz$ = "EDIT" THEN
  102.         DEST$ = GetSymbolValue("EditTextOut")
  103.         IF IsDirWritable(DEST$) = 0 THEN
  104.             GOSUB BADPATH
  105.             PATHOK% = 0
  106.             SetMyFocus(IDC_EDIT)
  107.             GOTO GETPATHL1
  108.         ELSE
  109.             GOODDEST$ = DEST$
  110.             PATHOK% = 1
  111.             ReCalcDrives              
  112.         END IF
  113.         GOTO GETPATHL1
  114.     ELSEIF sz$ = "CHK" THEN
  115.         ReCalcDrives
  116.         GOTO GETPATHL1
  117.     ELSE
  118.         UIPop 1
  119.         GOTO QUIT
  120.     END IF
  121.  
  122. INSTALL:
  123.     DEST$ = GOODDEST$
  124.     CreateDir DEST$, cmoNone
  125.     OpenLogFile MakePath(DEST$, "install.log"),0
  126.     WriteToLogFile ""
  127.     WriteToLogFile "----------------------------------------------"
  128.     WriteToLogFile "FirstClass Client for Windows Version 1.0"
  129.     WriteToLogFile "Installation on "+DEST$
  130.  
  131.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  132.     OPTCUR$ = "CheckItemsState"
  133.  
  134.     WriteToLogFile "Source from " + SrcDir$
  135.     ClearCopyList
  136.     IF GetListItem(OPTCUR$, INSTAPP) = "ON" THEN
  137.         AddSectionFilesToCopyList "Executes", SrcDir$, DEST$
  138.         WriteToLogFile "Executables..............OK"
  139.         SIZETEXT$ = GetWindowsSysDir()
  140.         SysDir$ = MID$(SIZETEXT$, 1, LEN(SIZETEXT$) - 7)
  141.         AddSectionFilesToCopyList "Inis", SrcDir$, SysDir$ 
  142.     ENDIF
  143.     IF GetListItem(OPTCUR$, INSTHELP) = "ON" THEN
  144.         AddSectionFilesToCopyList "Help", SrcDir$, DEST$
  145.         WriteToLogFile "Help.....................OK"    
  146.     ENDIF
  147.     IF GetListItem(OPTCUR$, INSTNOT) = "ON" THEN
  148.         AddSectionFilesToCopyList "Notify", SrcDir$, DEST$
  149.         WriteToLogFile "Network Notify...........OK"
  150.     ENDIF
  151.     IF GetListItem(OPTCUR$, INSTAPP) = "ON" THEN
  152.         CreateDir MakePath(DEST$, "DOWNLOAD"), cmoNone
  153.         CreateDir MakePath(DEST$, "SCRIPTS"), cmoNone
  154.         CreateDir MakePath(DEST$, "FCP"), cmoNone
  155.         AddSectionFilesToCopyList "FCP", SrcDir$, MakePath(DEST$, "FCP")
  156.         CreateDir MakePath(DEST$, "MODEMS"), comNone
  157.         AddSectionFilesToCopyList "Modems", SrcDir$, MakePath(DEST$,"MODEMS")
  158.         WriteToLogFile "Modems...................OK"
  159.         SetDir$ = MakePath(DEST$, "SETTINGS")
  160.         CreateDir SetDir$, cmoNone
  161.         AddSectionFilesToCopyList "Systems", SrcDir$, SetDir$
  162.         WriteToLogFile "Systems..................OK"
  163.     ENDIF
  164.     WriteToLogFile " "
  165.     CopyFilesInCopyList
  166.     WriteToLogFile "Decompressing and copying complete."
  167.     WriteToLogFile "Installation Complete."
  168.     
  169.     
  170.     Exe$ = MakePath(DEST$,"fcclient.exe")
  171.  
  172.     CreateProgmanGroup "FirstClass", "", cmoNone
  173.     ShowProgmanGroup  "FirstClass", 1, cmoNone
  174.     IF GetListItem(OPTCUR$, INSTAPP) = "ON" THEN
  175.         CreateProgmanItem "FirstClass", "FirstClass Client",  Exe$, " ,00,20,20,"+SetDir$, cmoOverwrite
  176.         CreateProgmanItem "FirstClass", "SoftArc Online",  Exe$+" " +MakePath(SetDir$, "saol_mdm.fcs"), " ,50,60,200,"+SetDir$, cmoOverwrite
  177.         CreateProgmanItem "FirstClass", "Generic Modem", Exe$+" "+MakePath(SetDir$, "Modems.fcs"), " ,50,300,100,"+SetDir$, cmoOverwrite
  178.         CreateProgmanItem "FirstClass", "Generic Network", Exe$+" "+MakePath(SetDir$, "Network.fcs"), " ,50,60,100,"+SetDir$, cmoOverwrite
  179.         CreateProgmanItem "FirstClass", "Read Me", "write "+MakePath(DEST$, "read_me.wri"), " ,00,200,400,"+SetDir$, cmoOverwrite
  180.     ENDIF
  181.     IF GetListItem(OPTCUR$, INSTNOT) = "ON" THEN
  182.         CreateProgmanItem "FirstClass", "FirstClass Notify",  MakePath(DEST$,"fcnotify.exe"), " ,0,20,100,"+SetDir$, cmoOverwrite
  183.     ENDIF
  184.     WriteToLogFile "Created Program Manager Groups."
  185.     
  186.     CreateIniKeyValue "WIN.INI", "Extensions", "FCS", Exe$ +" ^.fcs", cmoOverwrite
  187.     WriteToLogFile "Created File Manager Associations."
  188.     CloseLogFile
  189.     sz$ = UIStartDlg(CUIDLL$, DONE, "FInfoDlgProc", 0, "")
  190.     UIPop 1 
  191. QUIT:
  192. END
  193.  
  194. BADPATH:
  195.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0,"")
  196.     IF sz$ <> "CONTINUE" THEN
  197.         GOTO BADPATH
  198.     END IF    
  199.     UIPop 1
  200. RETURN
  201.  
  202. FATALERR:
  203.     i% = DoMsgBox("No INF file found.","No INF",0)
  204.     GOTO QUIT
  205.  
  206. '**
  207. '** Purpose:
  208. '**     Appends a file name to the end of a directory path,
  209. '**     inserting a backslash character as needed.
  210. '** Arguments:
  211. '**     szDir$  - full directory path (with optional ending "\")
  212. '**     szFile$ - filename to append to directory
  213. '** Returns:
  214. '**     Resulting fully qualified path name.
  215. '*************************************************************************
  216. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  217.     IF szDir$ = "" THEN
  218.         MakePath = szFile$
  219.     ELSEIF szFile$ = "" THEN
  220.         MakePath = szDir$
  221.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  222.         MakePath = szDir$ + szFile$
  223.     ELSE
  224.         MakePath = szDir$ + "\" + szFile$
  225.     END IF
  226. END FUNCTION
  227.  
  228. SUB ReCalcDrives STATIC
  229.     free& = 0
  230.     touse& = 0
  231.     IF GetListItem("CheckItemsState", INSTAPP) = "ON" THEN
  232.         touse& = touse& + 950*1024
  233.     END IF
  234.     IF GetListItem("CheckItemsState", INSTNOT) = "ON" THEN
  235.         touse& = touse& + 60*1024
  236.     END IF
  237.     IF GetListItem("CheckItemsState", INSTHELP) = "ON" THEN
  238.         touse& = touse& + 300*1024
  239.     END IF
  240.     
  241.     free& = GetFreeSpaceForDrive(MID$(GOODDEST$,1,1))
  242.     free& = free& - touse&
  243.     IF free& < 0 THEN
  244.         SPACEOK% = 0
  245.     ELSE
  246.         SPACEOK% = 1
  247.     END IF
  248.     RemoveSymbol "TextIn" 
  249.     AddListItem "TextIn", STR$(free&/1024)+"K"
  250.     AddListItem "TextIn", STR$(touse&/1024)+"K"
  251. END SUB
  252.  
  253.  
  254.  
  255. SUB DoGreyInstallButton STATIC
  256.     TempState% = PATHOK% + SPACEOK%
  257.     IF (TempState% = 2) THEN
  258.         i% = ChangeWindState(IDC_C, 1)
  259.     ELSE
  260.         i% = ChangeWindState(IDC_C, 0)
  261.     END IF
  262. END SUB
  263.  
  264.